package com.hsylient.javase.chapter02.demo02.demo01;

/**
 * 外部类想要访问内部类中的数据，需要先实例化内部类
 *
 * 内部类想要访问外部类，也是需要先实例化外部类，但是内部类是依赖外部类的存在而存在的，也就是说当内部类创建了对象，外部类一定也创建了
 */
public class InnerClassTest {

    public static void main(String[] args) {
        /*
            内部类可以访问外部类所有访问级别的
            new InnerClass().new Student()先实例化了外部类，再实例化了内部类
         */
        InnerClass.Student student = new InnerClass().new Student();
        student.getOutClassField();
        /*
            外部类可以通过创建对象的方式访问内部类中所有的属性
         */
        InnerClass innerClass = new InnerClass();
        innerClass.getInnerClassField();
    }
}
